/**
 * 
 */
package iut2.sponsor.client;

import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

/**
 * VUe gerant l'affichage de la liste des sponsors de l'application, avec leurs lots ou leur don
 */
public class VueListeSponsor extends Vue {

	private Label titre = new Label();
	VerticalPanel panel = new VerticalPanel();
	

	/**
	 * constructeur affichant le titre
	 */
	public VueListeSponsor() {
		titre.setText(lang.listSp());
		titre.setStyleName("titre");
		panel.add(titre);
	}
	
	/**
	 * Classe definissant l'affichage de la description d'un sponsor
	 */
	private class SponsorDesc extends HorizontalPanel {
		
		/**
		 * Constructeur
		 * @param sp Sponsor a afficher
		 * @param ligne numero de la ligne pour definir si elle est paire ou impaire (pour colorer le fond d'une couleur 
		 * ou d'une autre)
		 */
		public SponsorDesc(Sponsor sp, int ligne) {
			VerticalPanel panelSponsors = new VerticalPanel();
			panelSponsors.setWidth("650px");
			if (ligne%2==1) panelSponsors.addStyleName("ligne_impaire");
			else panelSponsors.addStyleName("ligne_paire");
			
			Grid grid = new Grid(2, 1);
			grid.setCellSpacing(3);
			Grid gridGlobal = new Grid(1, 3);
			
			grid.setWidget(0,0, new Label(lang.name(sp.getName())));
			grid.setWidget(1,0, new Label(lang.addr(sp.getAdresse())));
			if (sp.getMontant() <= 0) {
				gridGlobal.setHTML(0,2,"<span class=\"don\">" + lang.lotOffer(sp.getNbDons()) + "</span>");	
			} else {
				gridGlobal.setHTML(0,2,"<span class=\"don\">" + lang.montOffer(sp.getMontant()) + "</span>");
			}
			
			Image img = new Image(sp.getLogoUrl());
			img.setWidth("60px");
			
			gridGlobal.setWidget(0,0,img);
			gridGlobal.setWidget(0,1,grid);
			
			panelSponsors.add(gridGlobal);
			panel.add(panelSponsors);
		}
	}
	
	/**
	 * @return le panel contenant la liste des sponsors
	 */
	public Widget getPanel() {
		Sponsors spon = Iut2sponsor.SINGLETON.getSponsors();
		panel.setSpacing(6);
		
		int i = 0;
		for (Sponsor sp: spon) {
			panel.add(new SponsorDesc(sp,i));
			i++;
		}
		
		return panel;
	}
	
}
